package com.mojo.concurrent.concurrent_04_cas_atomic;

import java.util.concurrent.atomic.AtomicReference;

class User{
	 String name;
	 int age;
	 
	 public User(String name,int age) {
		 this.name=name;
		 this.age=age;
	 }

	@Override
	public String toString() {
		return "User [name=" + name + ", age=" + age + "]";
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}
 }
public class AtomicReferenceDemo01 {
	public static void main(String[] args) {
		User z3 = new User("z3",25);
		User li4 = new User("li4",25);
		AtomicReference<User> atomicReference  = new AtomicReference<>();
		atomicReference.set(z3);
		System.out.println(atomicReference);
		System.out.println(atomicReference.compareAndSet(z3, li4)+
							"       "+atomicReference.get().toString());
		System.out.println(atomicReference.compareAndSet(li4, z3)+
				"       "+atomicReference.get().toString());
	}
}

